/*
 * main.c
 *
 *  Created on: Apr 18, 2013
 *      Author: Vasile Guta Ciucur
 *      Site  : https://sites.google.com/site/funlw65/
 * *****************************************************************************
 * Description:
 *  ATmega_SerialBluetoothTest - what it does...
 *                what it does 2...
 *
 *******************************************************************************
 *  BSD License.
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  - Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 *
 *  - Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 *
 *  - Neither the name of Vasile Guta Ciucur nor the names of
 *    its contributors may be used to endorse or promote products derived from
 *    this software without specific prior written permission.
 *
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 *  ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 *  POSSIBILITY OF SUCH DAMAGE.
 */

// Activate the following definitions on "atmegaclib.h" header, not here:

//#define UART_BAUD_RATE      9600 // default is 57600
//#define UART_BAUD_SELECT    (F_CPU / (UART_BAUD_RATE * 16L) - 1)
//#define ENABLE_SERIAL       // require CONVERSION, conflicts with SERIAL_POLL
//#define ENABLE_CONVERSION   // useful for Serial, LCD and 7SEG Display

#ifndef F_CPU
	#define F_CPU 16000000U // required by Atmel Studio 6
#endif

#include <avr/io.h>
#include <avr/interrupt.h> //needed by serial
#include <atmegaclib.h>


uint8_t ch;

//this allows me to have a "void main(void)" function,
// without the need to return an integer type
void main(void) __attribute__((noreturn));
void main (void)
{
  //
  serial_init(); // interrupt based USART communication
  sei(); // activate interrupts
  onboard_led_enable();//set the pin as output

  while (1)
  {
    //
    if(serial_available() == TRUE){
      ch = serial_getchar();
      if (ch == '0') onboard_led_off();
      else if (ch == '1') onboard_led_on();
      serial_flush();
    }
  }
}


